#include<iostream>
using namespace std;
int ne[100010],ver[100010],tot=-1,head=-1;
void add_q(int x){
	ver[++tot]=x;
	ne[tot]=head;
	head=tot;
}
void add_w(int x){
	ver[++tot]=x;
	ne[tot]=-1;
	ne[tot-1]=tot;
} 
void add_h(int k,int x){
	ver[++tot]=x;
	ne[tot]=ne[k];
	ne[k]=tot;
}
void de(int k){
	ne[k]=ne[ne[k]];
}
int main(){
	int m,a,b;
	char s;
	cin>>m;
	for(int i=1;i<=m;i++){
		cin>>s;
		if(s=='H'){
			cin>>a;
			add_q(a);
		}
		if(s=='D'){
			cin>>a;
			if(a==0){
				head=ne[head];
			}else{
				de(a-1);
			}
		}
		if(s=='I'){
			cin>>a>>b;
			add_h(a-1,b);
		}
	}
	for(int i=head;i!=-1;i=ne[i]){
		cout<<ver[i]<<" ";
	}
	return 0;
}
